Page({
  data: {
    id: '',// 选择的小区id
    // 选择的小区名
    point: '',
    // 选择的楼号
    building: '',
    //选择的房间号
    room: '',
    name: '',// 姓名
    gender: 0,// 性别
    mobile: '',// 手机号
    // 图片地址演示使用
    idcardFrontUrl: '/static/images/avatar_1.jpg',
    idcardBackUrl: '/static/images/avatar_2.jpg',
  },

  onLoad({ id, point, building, room }) {
    if (id) {
      //编辑修改 navigationBarTitleText
      wx.setNavigationBarTitle({ title: '编辑房屋信息' })
      //编辑房屋回显数据
      this.getEditData(id)
    } else {
      this.setData({ point, building, room })
    }
  },

  //编辑房屋回显数据
  async getEditData(id) {
    const data = await wx.http.get('/room/' + id)
    console.log('房屋详情：', data)
    // 说明：...data 是 ES6 的对象展开语法，相当于 this.setData({ ...data })把对象中所有属性都展开放到 data 中
    this.setData({ ...data })
  },

  async goList() {
    const { id, point, building, room, name, gender, mobile, idcardFrontUrl, idcardBackUrl } = this.data

    //校验数据
    if (!/^[\u4e00-\u9fa5]{2,5}$/.test(name)) return wx.utils.message('姓名格式不正确')
    if (!/^[1][3-8][0-9]{9}$/.test(mobile)) return wx.utils.message('手机号格式不正确')
    if (!idcardFrontUrl || !idcardBackUrl) return wx.utils.message('请上传身份证照片')
    console.log('校验通过')
    // 说明：如果是编辑房屋信息，需要传id，否则不需要传id
    // if (id) {
    // 编辑房屋
    console.log('编辑房屋');
    await wx.http.post('/room', { id, point, building, room, name, gender, mobile, idcardFrontUrl, idcardBackUrl })

    wx.reLaunch({
      url: '/house_pkg/pages/list/index',
    })
  },
  //上传人像面
  async uploadPicture(e) {
    // console.log('上传人像面', e.mark.type);
    const type = e.mark.type
    const res = await wx.chooseMedia({
      count: 1,// 一次最多可以选择的图片张数
      mediaType: ['image'], // 仅显示图片文件
      sizeType: ['compressed'],// 可以指定是原图还是压缩图，默认二者都有
    })

    // 调接 公共upload上传图片
    const img = await wx.utils.upload(res.tempFiles[0].tempFilePath)
    console.log('上传的图片', img.data.url);

    // 回显图片
    this.setData({
      [type]: img.data.url
    })
  },

  //删除图片
  removePicture(ev) {
    // 移除图片的类型（身份证正面或反面）
    const type = ev.mark.type
    this.setData({ [type]: '' })
  },
})
